%------------------------------------------------------------------------
% Program that causes a seg fault.
%
% No simplification is possible (Model T = {q}, F = {p}, U = {}).
%------------------------------------------------------------------------

% :- auto_table.
:- table p/0, q/0.

p :- tnot(q), p.

q :- tnot(p), q.
q :- tnot(p).

%------------------------------------------------------------------------

test :- p, fail.
test :- ( p ->	( tnot(p) -> writeln('p. p is undefined')
		; writeln('p. p is true') )
	; writeln('p. p is false (OK)') ),
        ( q ->  ( tnot(q) -> writeln('p. q is undefined')
		; writeln('p. q is true (OK)') )
	; writeln('p. q is false') ),
	abolish_all_tables, fail.
test :- q, fail.
test :- ( p ->	( tnot(p) -> writeln('q. p is undefined')
		; writeln('q. p is true') )
	; writeln('q. p is false (OK)') ),
        ( q ->  ( tnot(q) -> writeln('q. q is undefined')
		; writeln('q. q is true (OK)') )
	; writeln('q. q is false') ).
